// var a = require('./nonstandardBLE.js')
// console.log(a);

// var a = require('./nonstandardBLE.js')

// var x = 0x20;
// console.log(parseInt('0x20', 16).toString(10))
// console.log(typeof(parseInt(x, 10)));
// parseInt('39', 16)



// var num = 10
// console.log(num.toString(16))
// console.log((57).toString(16))
//Number.toString(radix)  只能将十进制转换为任意进制 radix 表示目标进制


// function Cat(name, color) {
//     this.name = name;
//     this.color = color;
// }

// Cat.prototype.type = "猫科动物";
// Cat.prototype.eat = function() { console.log("吃老鼠"); };
// Cat.prototype.run = function() { console.log("跑得快"); };

// var cat1 = new Cat("大毛", "黄色");
// var cat2 = new Cat("二毛", "黑色");

// console.log(cat1.type); // 猫科动物
// cat1.eat(); // 吃老鼠
// cat2.eat(); // 吃老鼠
// cat2.run(); // 跑得快


// function Persona(name) {
//     this.name = name;
// }


// Persona.prototype.sayHello = function() {
//     console.log(this.name);
// }
// var chenjia = new Persona("陈佳")
// chenjia.sayHello()

// var obj = {
//     name: 'cj',
//     sayHello: function() {
//         console.log(this.name);
//     }
// }

// var newcj = Object.create(obj)
// newcj.sayHello()


// var a = false;
// var b = false;
// console.log(a && b); // false
// console.log(a || b); //true


// *************1,ES5语法*************
// function Fun1(name, age) {
//     this.name = name;
//     this.age = age;
// }
// Fun1.prototype.f1 = function() {
//     console.log(this.name, this.age);
// }



// *************2,ES6语法  class*************
// class Fun2 {
//     constructor(name, age, sex) {
//         this.name = name;
//         this.age = age;
//         this.sex = sex;
//     }

//     f2() {
//         console.log(this.name, this.age);
//     }

//     f3() {
//         console.log(this.name + "八嘎雅鹿" + this.sex);
//     }
// }


// class fun3 extends Fun2 {}

// const obj1 = new Fun1('张三', 18);
// console.log(obj1);
// obj1.f1()


// const obj2 = new Fun2('李四', 20);
// console.log(obj2);
// obj2.f2()


// var obj3 = new fun3('王五', 22, "男");
// obj3.f3()
// function ccc() {
// ble_status = 'connect'
// workstatus = "on"
// warmon = true;
// console.log(ble_status);
// refreshUI()
// console.log("连接蓝牙TEST");
// }

// 回调函数是作为参数传递给另一个函数的函数， 在父函数完成后执行。
// function doSomething(msg, callback) {
//     console.log("MSG");
//     if (typeof callback == "function")
//         callback();
// }


// doSomething("回调函数", function() {
//     console.log("匿名函数实现回调");
// });
// module.exports = status_title


// function f1(info, callback) {
//     console.log(info);
//     callback()

// }

// f1("CJ", function() {
//     console.log("回调函数");
// })



// function studyEnglish(who) {
//     undefined
//     console.log(who + "学习英语");
// }

// function study(callback, params) {
//     undefined
//     callback(params);
// }

// study(studyEnglish, "‘ck’");

let arr = [1, 2, 3, 4, 4, 1]
let newArr = arr.reduce((pre, cur) => {
    if (!pre.includes(cur)) {
        return pre.concat(cur)
    } else {
        return pre
    }
}, [])
console.log(newArr); // [1, 2, 3, 4]